package cn.lg.soar.common.util.token;

/**
 * @author luguoxiang 469599794@qq.com
 * @Date: 2025/5/19 10:45
 * 开源项目：https://gitee.com/lgx1992/lg-soar 求star！请给我star！请帮我点个star！
 */
public interface ISoarJWT {

    /**
     * 创建
     * @param payload
     * @param salt 盐
     * @return
     */
    String create(String payload, String salt);

    /**
     * 校验
     * @param payload
     * @return
     */
    default String create(String payload){
        return create(payload, "");
    }

    /**
     * 校验
     * @param token
     * @param salt 盐
     * @return
     */
    String verify(String token, String salt);

    /**
     * 校验
     * @param token
     * @return
     */
    default String verify(String token){
        return verify(token, "");
    }

    /**
     * 获取签名
     * @param token
     * @return
     */
    String getSign(String token);

    /**
     * 获取有效期
     * @param token
     * @return
     */
    long getExpire(String token);

    /**
     * 获取载体
     * @param token
     * @return
     */
    String getPayload(String token);

}
